BOOTSEG   = 0x07C0

.code16
.text

.global _start
_start:
    jmpl $BOOTSEG, $start2

start2:
    movw $BOOTSEG, %ax
    movw %ax, %ds
    movw %ax, %es
    movw %ax, %fs
    movw %ax, %gs

    movw $msg, %ax   #打印字符串的首地址存到bp寄存器
    movw %ax, %bp
    movw $0x01301, %ax   #13表示在teletype模式下显示字符串 01表示显示输出方式为字符串中含显示字符和显示属性，并且显示后光标位置不变
    movw $0x0c, %bx   #文字为红色 bh存放页码，bl设置文字颜色
    movw $12, %cx     #字符串长度
    movb $0, %dl  #输出光标的位置 dh行号，dl列号
    int $0x010   #中断触发指令，通知显卡刷新内容

loop:
    jmp loop

msg:
.ascii "hello wolrd!"

.org 510
boot_flag:
    .word 0xaa55
    
